package org.jsola.hr.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.dto.BaseDTO;
import org.jsola.hr.constant.convert.BackStatusConverter;
import org.jsola.hr.constant.convert.WayStatusConverter;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 社保回款导出
 *
 * @author zhr
 */
@ContentRowHeight(15)
@HeadRowHeight(35)
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "导出【社保回款信息】的参数")
@Data
public class EmpSocBackRecordInfoExportDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = "姓名")
    @ExcelProperty(value = "姓名", index = 0)
    private String name;

    @ApiModelProperty(notes = "手机号")
    @ExcelProperty(value = "手机号", index = 1)
    private String phone;

    @ApiModelProperty(notes = "身份证号")
    @ColumnWidth(20)
    @ExcelProperty(value = "身份证号", index = 2)
    private String idCard;

    @ApiModelProperty(notes = "用工单位")
    @ExcelProperty(value = "用工单位", index = 3)
    private String companyName;

    @ApiModelProperty(notes = "服务费")
    @ExcelProperty(value = "服务费", index = 4)
    private BigDecimal serviceCost;

    @ApiModelProperty(notes = "社保费")
    @ExcelProperty(value = "社保费", index = 5)
    private BigDecimal socAmount;

    @ApiModelProperty(notes = "应收款")
    @ExcelProperty(value = "应收款", index = 6)
    private BigDecimal totalAmount;

    @ApiModelProperty(notes = "本月实收")
    @ExcelProperty(value = "本月实收", index = 7)
    private BigDecimal realityAmount;

    @ApiModelProperty(notes = "未回款金额")
    @ColumnWidth(14)
    @ExcelProperty(value = "未回款金额", index = 8)
    private BigDecimal surplusAmount;

    @ApiModelProperty(notes = "回款状态")
    @ColumnWidth(12)
    @ExcelProperty(value = "回款状态", index = 9, converter = BackStatusConverter.class)
    private String status;

    @ApiModelProperty(notes = "备注")
    @ExcelProperty(value = "备注", index = 10)
    private String remark;

    @ApiModelProperty(notes = "滞纳金")
    @ColumnWidth(9)
    @ExcelProperty(value = "滞纳金", index = 11)
    private BigDecimal overdueFine;

    @ApiModelProperty(notes = "负责人")
    @ColumnWidth(9)
    @ExcelProperty(value = "负责人", index = 12)
    private String responsibleName;

    @ApiModelProperty(notes = "回款途径")
    @ColumnWidth(12)
    @ExcelProperty(value = "回款途径", index = 13, converter = WayStatusConverter.class)
    private Integer wayStatus;

    @ApiModelProperty(notes = "回款金额")
    @ColumnWidth(12)
    @ExcelProperty(value = "回款金额", index = 14)
    private BigDecimal infoRealityAmount;

    @ApiModelProperty(notes = "操作人")
    @ExcelProperty(value = "操作人", index = 15)
    private String operateUser;

    @ApiModelProperty(notes = "操作时间")
    @ColumnWidth(18)
    @ExcelProperty(value = "操作时间", index = 16)
    private Date operateDate;

    @ApiModelProperty(notes = "余额")
    @ExcelProperty(value = "余额", index = 17)
    private BigDecimal amount;

}
